///////////////////////////////////////////////////////////
//  Item.h
//  Implementation of the Class Item
//  Created on:      19-Aug-2013 10:26:35 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_26C30602_971C_4f31_B559_2F3766BA7643__INCLUDED_)
#define EA_26C30602_971C_4f31_B559_2F3766BA7643__INCLUDED_

#include "../Interfaces/IItem.h"

namespace Data
{
class Item : public IItem
{

public:
	Item(const String_t& name = _T(""), IData::DataType _type = IData::INT_T);
	Item(const Item& anotherItem);
	virtual ~Item();
	virtual IObject::ObjectType GetType() const;
	virtual String_t GetName() const;
	virtual IData* GetData() const;
	virtual String_t GetComment() const;
	virtual void SetName(const String_t& name);
	virtual void SetData(IData* data);
	virtual void SetComment(const String_t& comment);
	virtual IObject* Clone();
	virtual String_t ToXML();
	virtual IObject* GetParent();
	virtual void SetParent(IObject* parent);

private:
	IObject::ObjectType m_type;
	String_t m_name;
	String_t m_comment;
	IData* m_data;
	IObject* m_parent;

};
}
#endif // !defined(EA_26C30602_971C_4f31_B559_2F3766BA7643__INCLUDED_)
